#include <stdio.h>

typedef int (*MFunc1)(int, int);
typedef int (*MFunc2)(int, int);


//int test(int a, int b, MFunc pFunc);

//int test(int a, int b, int (*pFunc)(int,int));
//int plus(int a, int b); //函数声明
//int minus(int, int);    //函数声明，缺省形参名称
int plus(int a, int b)
{
    return (a+b);
}

int minus(int a, int b)
{
    return (a-b);
}

int test(int a, int b, int (*pFunc)(int, int))
{
    return ((*pFunc)(a, b));
}
int main()
{
    int x = 5, y = 8;
    //变量的声明
    //变量类型 int (*pFunc)(int, int)
    //指针变量，里面内容时装地址
//    int *a;
//    int* a;
    MFunc1 pFunc ;

//    printf("***********%p",*plus);

    pFunc = plus;
    printf("%d\n", (*pFunc)(x, y));

    pFunc = minus;
    printf("%d\n", (*pFunc)(x, y));

    printf("%d\n", test(15, 5, plus));
    printf("%d\n", test(15, 5, minus));

    return 0;
}

